package com.neu.test;
	/**
	 * 
	 * @author neustu
	 * 完成 JDBC 的代码定义
	 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.sql.Statement;

public class JDBCDemo {
	//  定义成员的属性 
private static String url = "jdbc:mysql://localhost:3306/mjq";
private static String userName = "root";
private static String pass = "mysql";
private static String driver = "com.mysql.jdbc.Driver";
public static Connection conn;
public static Statement st;   //  执行器
     //  来一个静态代码块
static {
	try {
	//  驱动的加载   对应的方法是    Class.forName(driver);
		//  先生成下面的代码   然后快捷生成  try{}
		Class.forName(driver);
		//  生成    Connection 对象
		conn=DriverManager.getConnection(url,userName,pass);
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
/**
 *   定义更新操作的方法( 更新 tb_user 表中的数据)
 */
public static boolean update(String name,int id) {
	
	boolean flag = false;
	// 声明      mysql 更新操作
	String sql ="update tb_user set username='"+name+"' where id="+id;
	 
	try {
			Statement st= conn.createStatement();
			//让st执行器执行更新语句
			int a=st.executeUpdate(sql);
			if(a>0) {
				flag=true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	return flag;
}




/**
 * 
 * 完成查询操作,查询表tb_user中的所有数据，根据列的下标获取
 *  @throws SQLException 
 */
public static void findAll() throws SQLException {
	
	String sql = "select*from tb_user";
	
	Statement st= conn.createStatement();
	
	ResultSet rs =st.executeQuery(sql);
	
	while(rs.next()) {
		//表中列的下标从1开始，根据指定的下标获取对应的值
		//  就是通过 列名的下标来找对应的值
		int id = rs.getInt(1);
		String username=rs.getString(2);
		 String address=rs.getString(3);
		 String email=rs.getString(4);
		 System.out.println(id);
		 System.out.println(username);
		 System.out.println(address);
		 System.out.println(email);
		
	}
}




/**
 * 
 * @param args
 * @throws SQLException
 * 查询表中所有的数据，根据列名获取
 */
public static void findAll1() throws SQLException {
	String str = "select*from tb_user";
	
	Statement st =  conn.createStatement();
	
	ResultSet rs = st.executeQuery(str);
	
	while(rs.next()) {
		 //根据指定的表中的列名，获取对应的值
		//  就是通过你的   列名名字    来获取对应的内容
		//   id 是int类型   所以:
		 int id=rs.getInt("id");
		 // username  是String类型   所以:
		 String username=rs.getString("username");
		 String address=rs.getString("address");
		 String email=rs.getString("email");
		 System.out.println(id);
		 System.out.println(username);
		 System.out.println(address);
		 System.out.println(email);
	}
}

public static void main(String[] args) throws SQLException {
	System.out.println(update("哈哈哈", 2));
	findAll();
	findAll1();
}
}
